package com.wb.code09集合;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 黄衡熙
 * @version 1.0
 */
public class Test03_常用方法 {
    public static void main(String[] args) {
        listMethod();
    }
    public static void listMethod() {
        ArrayList<String> list = new ArrayList<>();
        // size():返回集合中元素的数量
        System.out.println("集合中元素数量:" + list.size());
        // add():向集合的末尾添加指定元素,元素的顺序与放入的顺序一致
        list.add("jack");
        list.add("admin");
        list.add("alice");
        list.add("jack");
        list.add("admin");
        list.add("jack");
        list.add("admin");
        // 向集合中index索引位置添加指定元素t
        list.add(1, "tom");

        // 将集合中index索引位置的元素修改为t,并返回原有的元素值
        System.out.println(list.set(1, "lily"));

        // 移除集合中首次出现的指定元素。如果存在指定元素,移除后返回true,否则返回false。
        System.out.println(list.remove("jack"));
        System.out.println(list);

        // 移除集合中index索引位置的元素,并返回被移除的元素
        System.out.println(list.remove(2));

        List<Integer> nums = new ArrayList<>();
        nums.add(1);
        nums.add(3);
        nums.add(7);
        nums.add(5);
        nums.add(4);
        System.out.println(nums);
        // 当集合是一个Integer类型时
        // 直接写数字表示的是一个int类型的数据,则删除指定索引位置的元素
        nums.remove(3);
        // 如果要删除指定的元素,则通过手动装箱将一个数值通过Integer表示
        // 此时表示删除指定元素3
        nums.remove(Integer.valueOf(3));
        System.out.println(nums);
        // 返回index索引位置的元素
        System.out.println(list.get(2));

        // 返回指定元素在集合中第一次出现的索引位置。如果不存在,则返回-1
        System.out.println(list.indexOf("admin"));
        System.out.println(list.indexOf("alice"));

        // 返回指定元素在集合中最后一次出现的索引位置。如果不存在,则返回-1
        System.out.println(list.lastIndexOf("admin"));
        System.out.println(list.lastIndexOf("alice"));

        // 判断集合中是否存在指定元素t,返回boolean类型
        System.out.println(list.contains("admin"));
        System.out.println(list.contains("alice"));
        System.out.println(list);


        // 当集合中没有数据时,表示集合为空
        // 此时相当于list2.size() == 0
        // 打印集合,其结果不是null,而是一对中括号
        List<String> list2 = new ArrayList<>();
        System.out.println(list2);
        // 判断指定集合是否为空,返回boolean类型数据。相当于list2.size() == 0
        System.out.println(list2.isEmpty());
        System.out.println(list2.size() == 0);
    }
}
